package com.cl.unipay4j.core.util;

import com.cl.unipay4j.core.IBaseEnum;

import java.io.Serializable;

/**
 * 枚举工具类
 *
 * @author siashan
 * @since v1.0.1
 **/
public class EnumUtil {


    /**
     * 方法描述: 根据value得到对应的枚举值
     *
     * @param targerType  枚举Clazz
     * @param source      value值
     * @return T  对应的枚举值
     */
    public static <T extends IBaseEnum> T getIEnum(Class<T> targerType, Serializable source) {
        for (T enumObj : targerType.getEnumConstants()) {
            if (source.equals(enumObj.getValue())) {
                return enumObj;
            }
        }
        return null;
    }

    /**
     * 方法描述: 根据value得到对应的描述值
     *
     * @param targerType  枚举Clazz
     * @param source      value值
     *
     * @return 枚举对应的desp
     */
    public static String getDesp(Class targerType, Serializable source) {
        IBaseEnum iEnum = getIEnum(targerType, source);
        return iEnum.getDesp();
    }


}
